#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int f_14a2(int *va, int vb)
{
    /*14a2:	f3 0f 1e fa          	endbr64 
    14a6:	55                   	push   %rbp
    14a7:	48 89 e5             	mov    %rsp,%rbp
    14aa:	48 89 7d e8          	mov    %rdi,-0x18(%rbp) va
    14ae:	89 75 e4             	mov    %esi,-0x1c(%rbp)	vb */
    //14b1:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%rbp)
		int i = 0;

    //14b8:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%rbp)
		int j = 0;

    /*14bf:	eb 1d                	jmp    14de <printf@plt+0x46e>
    14c1:	8b 45 f8             	mov    -0x8(%rbp),%eax	// eax = i
    14c4:	48 98                	cltq   
    14c6:	48 8d 14 85 00 00 00 	lea    0x0(,%rax,4),%rdx	// rdx = i + 4 + 0x0
    14cd:	00 
    14ce:	48 8b 45 e8          	mov    -0x18(%rbp),%rax		// va
    14d2:	48 01 d0             	add    %rdx,%rax			// rax = va + i + 4
    14d5:	8b 00                	mov    (%rax),%eax			// eax = va[i]
    14d7:	01 45 fc             	add    %eax,-0x4(%rbp)		// j = j + va[i]
    14da:	83 45 f8 01          	addl   $0x1,-0x8(%rbp)		// i++
    14de:	8b 45 f8             	mov    -0x8(%rbp),%eax
    14e1:	3b 45 e4             	cmp    -0x1c(%rbp),%eax
    14e4:	7c db                	jl     14c1 <printf@plt+0x451>*/

	for (i = 0; i < vb; i++) {
		j += va[i];
	}

    /*14e6:	8b 45 fc             	mov    -0x4(%rbp),%eax
    14e9:	5d                   	pop    %rbp
    14ea:	c3                   	retq   */

	return j;
}

int f_14eb(int (*va)[4], int vb)
{
    /*14eb:	f3 0f 1e fa          	endbr64 
    14ef:	55                   	push   %rbp
    14f0:	48 89 e5             	mov    %rsp,%rbp
    14f3:	48 89 7d e8          	mov    %rdi,-0x18(%rbp)		// va
    14f7:	89 75 e4             	mov    %esi,-0x1c(%rbp)*/	// vb
    //14fa:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%rbp)
		int i = 0;

    //1501:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%rbp)
		int j = 0;
		int k;

    /*1508:	eb 35                	jmp    153f <printf@plt+0x4cf>
    150a:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%rbp)			// k = 0
    1511:	eb 22                	jmp    1535 <printf@plt+0x4c5>
    1513:	8b 45 f4             	mov    -0xc(%rbp),%eax			// eax = i
    1516:	48 98                	cltq   
    1518:	48 c1 e0 04          	shl    $0x4,%rax			// rax = i << 4
    151c:	48 89 c2             	mov    %rax,%rdx			// rdx = i << 4
    151f:	48 8b 45 e8          	mov    -0x18(%rbp),%rax		// rax = va
    1523:	48 01 c2             	add    %rax,%rdx			// rdx = va + i << 4
    1526:	8b 45 f8             	mov    -0x8(%rbp),%eax		// eax = j
    1529:	48 98                	cltq   
    152b:	8b 04 82             	mov    (%rdx,%rax,4),%eax	// eax = rdx + i * 4
    152e:	01 45 fc             	add    %eax,-0x4(%rbp)		// j = j+(rdx+i*4)
    1531:	83 45 f8 01          	addl   $0x1,-0x8(%rbp)		// k++
    1535:	83 7d f8 03          	cmpl   $0x3,-0x8(%rbp)		// k < 4
    1539:	7e d8                	jle    1513 <printf@plt+0x4a3>
    153b:	83 45 f4 01          	addl   $0x1,-0xc(%rbp)		// i++
    153f:	8b 45 f4             	mov    -0xc(%rbp),%eax		// eax = i
    1542:	3b 45 e4             	cmp    -0x1c(%rbp),%eax
    1545:	7c c3                	jl     150a <printf@plt+0x49a>*/

	for (i = 0; i < vb; i++) {
		for (k = 0; k < 4; k++) {
			j = va[i][k];
		}
	}

    /*1547:	8b 45 fc             	mov    -0x4(%rbp),%eax
    154a:	5d                   	pop    %rbp
    154b:	c3                   	retq   */

	return j;

}

int f_1372()
{
    /*1372:	f3 0f 1e fa          	endbr64 
    1376:	55                   	push   %rbp
    1377:	48 89 e5             	mov    %rsp,%rbp
    137a:	48 83 c4 80          	add    $0xffffffffffffff80,%rsp
    137e:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    1385:	00 00 
    1387:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    138b:	31 c0                	xor    %eax,%eax*/
    //138d:	c7 45 a8 0a 00 00 00 	movl   $0xa,-0x58(%rbp)
    //1394:	c7 45 ac 14 00 00 00 	movl   $0x14,-0x54(%rbp)
	int a[2] = {10, 20};

    //139b:	48 8d 45 a8          	lea    -0x58(%rbp),%rax
    //139f:	48 89 45 98          	mov    %rax,-0x68(%rbp)
	int *p1 = a;

    /*13a3:	c7 45 d0 01 00 00 00 	movl   $0x1,-0x30(%rbp)
    13aa:	c7 45 d4 02 00 00 00 	movl   $0x2,-0x2c(%rbp)
    13b1:	c7 45 d8 03 00 00 00 	movl   $0x3,-0x28(%rbp)
    13b8:	c7 45 dc f7 ff ff ff 	movl   $0xfffffff7,-0x24(%rbp)
    13bf:	c7 45 e0 04 00 00 00 	movl   $0x4,-0x20(%rbp)
    13c6:	c7 45 e4 05 00 00 00 	movl   $0x5,-0x1c(%rbp)
    13cd:	c7 45 e8 06 00 00 00 	movl   $0x6,-0x18(%rbp)
    13d4:	c7 45 ec f8 ff ff ff 	movl   $0xfffffff8,-0x14(%rbp)*/
	int b[2][4] = {{1, 2, 3, -9}, {4, 5, 6, -8}};

    //13db:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
    //13df:	48 89 45 a0          	mov    %rax,-0x60(%rbp)
	int (*p2)[4] = b;

    /*13e3:	48 8b 45 98          	mov    -0x68(%rbp),%rax
    13e7:	be 02 00 00 00       	mov    $0x2,%esi
    13ec:	48 89 c7             	mov    %rax,%rdi
    13ef:	e8 ae 00 00 00       	callq  14a2 <printf@plt+0x432>
    13f4:	89 45 8c             	mov    %eax,-0x74(%rbp)*/
	int ret1 = f_14a2(p1, 2);

    /*13f7:	48 8b 45 a0          	mov    -0x60(%rbp),%rax
    13fb:	be 02 00 00 00       	mov    $0x2,%esi
    1400:	48 89 c7             	mov    %rax,%rdi
    1403:	e8 e3 00 00 00       	callq  14eb <printf@plt+0x47b>
    1408:	89 45 90             	mov    %eax,-0x70(%rbp)*/
	int ret2 = f_14eb(p2, 2);

    /*140b:	c7 45 b0 04 00 00 00 	movl   $0x4,-0x50(%rbp)
    1412:	c7 45 b4 04 00 00 00 	movl   $0x4,-0x4c(%rbp)
    1419:	c7 45 b8 04 00 00 00 	movl   $0x4,-0x48(%rbp)
    1420:	c7 45 bc 05 00 00 00 	movl   $0x5,-0x44(%rbp)
    1427:	c7 45 c0 05 00 00 00 	movl   $0x5,-0x40(%rbp)
    142e:	c7 45 c4 05 00 00 00 	movl   $0x5,-0x3c(%rbp)*/
	int c[6] = {4, 4, 4, 5, 5, 5};

    /*1435:	48 8d 45 b0          	lea    -0x50(%rbp),%rax
    1439:	be 06 00 00 00       	mov    $0x6,%esi
    143e:	48 89 c7             	mov    %rax,%rdi
    1441:	e8 5c 00 00 00       	callq  14a2 <printf@plt+0x432>
    1446:	89 45 94             	mov    %eax,-0x6c(%rbp)*/
	int ret3 = f_14a2(c, 6);

    /*1449:	8b 45 8c             	mov    -0x74(%rbp),%eax
    144c:	89 c6                	mov    %eax,%esi
    144e:	48 8d 3d af 0b 00 00 	lea    0xbaf(%rip),%rdi        # 2004 <printf@plt+0xf94>
    1455:	b8 00 00 00 00       	mov    $0x0,%eax
    145a:	e8 11 fc ff ff       	callq  1070 <printf@plt>*/
	printf("ret1 = %d\n", ret1);

    /*145f:	8b 45 90             	mov    -0x70(%rbp),%eax
    1462:	89 c6                	mov    %eax,%esi
    1464:	48 8d 3d a6 0b 00 00 	lea    0xba6(%rip),%rdi        # 2011 <printf@plt+0xfa1>
    146b:	b8 00 00 00 00       	mov    $0x0,%eax
    1470:	e8 fb fb ff ff       	callq  1070 <printf@plt>*/
	printf("ret2 = %d\n", ret2);

    /*1475:	8b 45 94             	mov    -0x6c(%rbp),%eax
    1478:	89 c6                	mov    %eax,%esi
    147a:	48 8d 3d 9d 0b 00 00 	lea    0xb9d(%rip),%rdi        # 201e <printf@plt+0xfae>
    1481:	b8 00 00 00 00       	mov    $0x0,%eax
    1486:	e8 e5 fb ff ff       	callq  1070 <printf@plt>*/
	printf("ret3 = %d\n", ret3);

    /*148b:	90                   	nop
    148c:	48 8b 55 f8          	mov    -0x8(%rbp),%rdx
    1490:	64 48 33 14 25 28 00 	xor    %fs:0x28,%rdx
    1497:	00 00 
    1499:	74 05                	je     14a0 <printf@plt+0x430>
    149b:	e8 c0 fb ff ff       	callq  1060 <__stack_chk_fail@plt>
    14a0:	c9                   	leaveq 
    14a1:	c3                   	retq   */

	return 0; 
}

int f_154c()
{ 
    /*154c:	f3 0f 1e fa          	endbr64 
    1550:	55                   	push   %rbp
    1551:	48 89 e5             	mov    %rsp,%rbp
    1554:	41 56                	push   %r14
    1556:	41 55                	push   %r13
    1558:	41 54                	push   %r12
    155a:	53                   	push   %rbx
    155b:	48 83 ec 40          	sub    $0x40,%rsp
    155f:	64 4c 8b 34 25 28 00 	mov    %fs:0x28,%r14
    1566:	00 00 
    1568:	4c 89 75 d8          	mov    %r14,-0x28(%rbp)
    156c:	45 31 f6             	xor    %r14d,%r14d
    156f:	49 89 e2             	mov    %rsp,%r10
    1572:	4d 89 d6             	mov    %r10,%r14*/
    //1575:	c7 45 bc 03 00 00 00 	movl   $0x3,-0x44(%rbp)
	//157c:	c7 45 b8 04 00 00 00 	movl   $0x4,-0x48(%rbp)
	int a[2] = {3, 4};
    
    /*1583:	44 8b 55 b8          	mov    -0x48(%rbp),%r10d	// r10d = 4
    1587:	44 8b 5d bc          	mov    -0x44(%rbp),%r11d	// r11d = 3
    158b:	4d 63 e2             	movslq %r10d,%r12	// r12 = 4
    158e:	49 83 ec 01          	sub    $0x1,%r12	// r12 = 4-1 = 3
    1592:	4c 89 65 c0          	mov    %r12,-0x40(%rbp)	// (rbp-0x40) = r12 = 3
    1596:	4d 63 e2             	movslq %r10d,%r12		// r12 = 4
    1599:	4c 89 65 a0          	mov    %r12,-0x60(%rbp)	// (rbp-0x60) = r12 = 4
    159d:	48 c7 45 a8 00 00 00 	movq   $0x0,-0x58(%rbp)	// (rbp-0x58) = 0
    15a4:	00 
    15a5:	4d 63 e3             	movslq %r11d,%r12		// r12 = 3
    15a8:	49 83 ec 01          	sub    $0x1,%r12		// r12 = 3-1 = 2
    15ac:	4c 89 65 c8          	mov    %r12,-0x38(%rbp)	// (rbp-0x38) = 2
    15b0:	4d 63 e2             	movslq %r10d,%r12		// r12 = 4
    15b3:	4d 89 e0             	mov    %r12,%r8			// r8 = 4
    15b6:	41 b9 00 00 00 00    	mov    $0x0,%r9d		// r9d = 0
    15bc:	4d 63 e3             	movslq %r11d,%r12		// r12 = 3
    15bf:	4c 89 e0             	mov    %r12,%rax		// rax = 3
    15c2:	ba 00 00 00 00       	mov    $0x0,%edx		// edx = 0
    15c7:	4d 89 cd             	mov    %r9,%r13			// r13 = 0
    15ca:	4c 0f af e8          	imul   %rax,%r13		// r13 = 3
    15ce:	49 89 d4             	mov    %rdx,%r12		// r12 = 0
    15d1:	4d 0f af e0          	imul   %r8,%r12			// r12 = 4*0 = 0
    15d5:	4d 01 ec             	add    %r13,%r12		// r12 = 0+3 = 3
    15d8:	49 f7 e0             	mul    %r8				// r8 = 
    15db:	4d 8d 04 14          	lea    (%r12,%rdx,1),%r8
    15df:	4c 89 c2             	mov    %r8,%rdx
    15e2:	49 63 c2             	movslq %r10d,%rax
    15e5:	48 89 c6             	mov    %rax,%rsi
    15e8:	bf 00 00 00 00       	mov    $0x0,%edi
    15ed:	49 63 c3             	movslq %r11d,%rax
    15f0:	48 89 c1             	mov    %rax,%rcx
    15f3:	bb 00 00 00 00       	mov    $0x0,%ebx
    15f8:	48 89 fa             	mov    %rdi,%rdx
    15fb:	48 0f af d1          	imul   %rcx,%rdx
    15ff:	48 89 d8             	mov    %rbx,%rax
    1602:	48 0f af c6          	imul   %rsi,%rax
    1606:	4c 8d 04 02          	lea    (%rdx,%rax,1),%r8
    160a:	48 89 f0             	mov    %rsi,%rax
    160d:	48 f7 e1             	mul    %rcx
    1610:	49 8d 0c 10          	lea    (%r8,%rdx,1),%rcx
    1614:	48 89 ca             	mov    %rcx,%rdx
    1617:	49 63 d2             	movslq %r10d,%rdx
    161a:	49 63 c3             	movslq %r11d,%rax
    161d:	48 0f af c2          	imul   %rdx,%rax
    1621:	48 8d 14 85 00 00 00 	lea    0x0(,%rax,4),%rdx
    1628:	00 
    1629:	b8 10 00 00 00       	mov    $0x10,%eax
    162e:	48 83 e8 01          	sub    $0x1,%rax
    1632:	48 01 d0             	add    %rdx,%rax
    1635:	bb 10 00 00 00       	mov    $0x10,%ebx
    163a:	ba 00 00 00 00       	mov    $0x0,%edx
    163f:	48 f7 f3             	div    %rbx
    1642:	48 6b c0 10          	imul   $0x10,%rax,%rax
    1646:	48 89 c2             	mov    %rax,%rdx
    1649:	48 81 e2 00 f0 ff ff 	and    $0xfffffffffffff000,%rdx
    1650:	48 89 e7             	mov    %rsp,%rdi
    1653:	48 29 d7             	sub    %rdx,%rdi
    1656:	48 89 fa             	mov    %rdi,%rdx
    1659:	48 39 d4             	cmp    %rdx,%rsp
    165c:	74 12                	je     1670 <printf@plt+0x600>
    165e:	48 81 ec 00 10 00 00 	sub    $0x1000,%rsp
    1665:	48 83 8c 24 f8 0f 00 	orq    $0x0,0xff8(%rsp)
    166c:	00 00 
    166e:	eb e9                	jmp    1659 <printf@plt+0x5e9>
    1670:	48 89 c2             	mov    %rax,%rdx
    1673:	81 e2 ff 0f 00 00    	and    $0xfff,%edx
    1679:	48 29 d4             	sub    %rdx,%rsp
    167c:	48 89 c2             	mov    %rax,%rdx
    167f:	81 e2 ff 0f 00 00    	and    $0xfff,%edx
    1685:	48 85 d2             	test   %rdx,%rdx
    1688:	74 10                	je     169a <printf@plt+0x62a>
    168a:	25 ff 0f 00 00       	and    $0xfff,%eax
    168f:	48 83 e8 08          	sub    $0x8,%rax
    1693:	48 01 e0             	add    %rsp,%rax
    1696:	48 83 08 00          	orq    $0x0,(%rax)
    169a:	48 89 e0             	mov    %rsp,%rax
    169d:	48 83 c0 03          	add    $0x3,%rax
    16a1:	48 c1 e8 02          	shr    $0x2,%rax
    16a5:	48 c1 e0 02          	shl    $0x2,%rax
    16a9:	48 89 45 d0          	mov    %rax,-0x30(%rbp)
    16ad:	4c 89 f4             	mov    %r14,%rsp
    16b0:	90                   	nop
    16b1:	48 8b 5d d8          	mov    -0x28(%rbp),%rbx
    16b5:	64 48 33 1c 25 28 00 	xor    %fs:0x28,%rbx
    16bc:	00 00 
    16be:	74 05                	je     16c5 <printf@plt+0x655>
    16c0:	e8 9b f9 ff ff       	callq  1060 <__stack_chk_fail@plt>
    16c5:	48 8d 65 e0          	lea    -0x20(%rbp),%rsp
    16c9:	5b                   	pop    %rbx
    16ca:	41 5c                	pop    %r12
    16cc:	41 5d                	pop    %r13
    16ce:	41 5e                	pop    %r14
    16d0:	5d                   	pop    %rbp
    16d1:	c3                   	retq */
		
	return 0; 
}

int f_1169()
{
    /*1169:	f3 0f 1e fa          	endbr64 
    116d:	55                   	push   %rbp
    116e:	48 89 e5             	mov    %rsp,%rbp
    1171:	48 81 ec d0 01 00 00 	sub    $0x1d0,%rsp
    1178:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    117f:	00 00 
    1181:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    1185:	31 c0                	xor    %eax,%eax*/
    /*1187:	c7 85 30 fe ff ff 03 	movl   $0x3,-0x1d0(%rbp)
    118e:	00 00 00 
    1191:	c7 85 34 fe ff ff 02 	movl   $0x2,-0x1cc(%rbp)
    1198:	00 00 00 
    119b:	c7 85 38 fe ff ff 01 	movl   $0x1,-0x1c8(%rbp)
    11a2:	00 00 00 
    11a5:	c7 85 3c fe ff ff 00 	movl   $0x0,-0x1c4(%rbp)
    11ac:	00 00 00 
    11af:	c7 85 40 fe ff ff 03 	movl   $0x3,-0x1c0(%rbp)
    11b6:	00 00 00 
    11b9:	c7 85 44 fe ff ff 02 	movl   $0x2,-0x1bc(%rbp)
    11c0:	00 00 00 
    11c3:	c7 85 48 fe ff ff 01 	movl   $0x1,-0x1b8(%rbp)
    11ca:	00 00 00 
    11cd:	c7 85 4c fe ff ff 00 	movl   $0x0,-0x1b4(%rbp)
    11d4:	00 00 00 
    11d7:	c7 85 50 fe ff ff 03 	movl   $0x3,-0x1b0(%rbp)
    11de:	00 00 00 
    11e1:	c7 85 54 fe ff ff 02 	movl   $0x2,-0x1ac(%rbp)
    11e8:	00 00 00 
    11eb:	c7 85 58 fe ff ff 01 	movl   $0x1,-0x1a8(%rbp)
    11f2:	00 00 00 
    11f5:	c7 85 5c fe ff ff 00 	movl   $0x0,-0x1a4(%rbp)
    11fc:	00 00 00 
    11ff:	c7 85 60 fe ff ff 01 	movl   $0x1,-0x1a0(%rbp)
    1206:	00 00 00 
    1209:	c7 85 64 fe ff ff 01 	movl   $0x1,-0x19c(%rbp)
    1210:	00 00 00 
    1213:	c7 85 68 fe ff ff 01 	movl   $0x1,-0x198(%rbp)
    121a:	00 00 00 
    121d:	c7 85 6c fe ff ff 01 	movl   $0x1,-0x194(%rbp)
    1224:	00 00 00 
    1227:	c7 85 70 fe ff ff 01 	movl   $0x1,-0x190(%rbp)
    122e:	00 00 00 
    1231:	c7 85 74 fe ff ff 01 	movl   $0x1,-0x18c(%rbp)
    1238:	00 00 00 
    123b:	c7 85 78 fe ff ff 01 	movl   $0x1,-0x188(%rbp)
    1242:	00 00 00 
    1245:	c7 85 7c fe ff ff 01 	movl   $0x1,-0x184(%rbp)
    124c:	00 00 00 
    124f:	c7 85 80 fe ff ff 01 	movl   $0x1,-0x180(%rbp)
    1256:	00 00 00 
    1259:	c7 85 84 fe ff ff 01 	movl   $0x1,-0x17c(%rbp)*/
	
	int a[] = {3, 2, 1, 0, 3, 2, 1, 0, 3, 2, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1 , 1, 1};

    /*1260:	00 00 00 
    1263:	90                   	nop
    1264:	48 8b 55 f8          	mov    -0x8(%rbp),%rdx
    1268:	64 48 33 14 25 28 00 	xor    %fs:0x28,%rdx
    126f:	00 00 
    1271:	74 05                	je     1278 <array1+0x10f>
    1273:	e8 e8 fd ff ff       	callq  1060 <__stack_chk_fail@plt>
    1278:	c9                   	leaveq 
    1279:	c3                   	retq   */
		
	return 0; 
}
int f_127a()
{
    /*127a:	f3 0f 1e fa          	endbr64 
    127e:	55                   	push   %rbp
    127f:	48 89 e5             	mov    %rsp,%rbp
    1282:	48 83 ec 40          	sub    $0x40,%rsp
    1286:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    128d:	00 00 
    128f:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    1293:	31 c0                	xor    %eax,%eax
    1295:	90                   	nop
    1296:	48 8b 55 f8          	mov    -0x8(%rbp),%rdx
    129a:	64 48 33 14 25 28 00 	xor    %fs:0x28,%rdx
    12a1:	00 00 
    12a3:	74 05                	je     12aa <array2+0x30>
    12a5:	e8 b6 fd ff ff       	callq  1060 <__stack_chk_fail@plt>
    12aa:	c9                   	leaveq 
    12ab:	c3                   	retq   
	*/

	return 0; 
}
int f_12ac()
{
    /*12ac:	f3 0f 1e fa          	endbr64 
    12b0:	55                   	push   %rbp
    12b1:	48 89 e5             	mov    %rsp,%rbp
    12b4:	48 83 ec 70          	sub    $0x70,%rsp
    12b8:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    12bf:	00 00 
    12c1:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    12c5:	31 c0                	xor    %eax,%eax*/
    //12c7:	c7 45 90 64 00 00 00 	movl   $0x64,-0x70(%rbp)
    //12ce:	c7 45 c0 32 00 00 00 	movl   $0x32,-0x40(%rbp)
	int a[10];

	a[0] = 100;
	a[1] = 50;

	/*
	 int a[10] = {100, 50};
		1493:	48 c7 45 c0 00 00 00 	movq   $0x0,-0x40(%rbp)
		149a:	00 
		149b:	48 c7 45 c8 00 00 00 	movq   $0x0,-0x38(%rbp)
		14a2:	00 
		14a3:	48 c7 45 d0 00 00 00 	movq   $0x0,-0x30(%rbp)
		14aa:	00 
		14ab:	48 c7 45 d8 00 00 00 	movq   $0x0,-0x28(%rbp)
		14b2:	00 
		14b3:	48 c7 45 e0 00 00 00 	movq   $0x0,-0x20(%rbp)
		14ba:	00 
		14bb:	c7 45 c0 64 00 00 00 	movl   $0x64,-0x40(%rbp)
		14c2:	c7 45 c4 32 00 00 00 	movl   $0x32,-0x3c(%rbp)
	 */

    /*12d5:	c6 45 ee 61          	movb   $0x61,-0x12(%rbp)
    12d9:	c6 45 ef 62          	movb   $0x62,-0x11(%rbp)
    12dd:	c6 45 f0 63          	movb   $0x63,-0x10(%rbp)
    12e1:	c6 45 f1 64          	movb   $0x64,-0xf(%rbp)
    12e5:	c6 45 f2 65          	movb   $0x65,-0xe(%rbp)
    12e9:	c6 45 f3 66          	movb   $0x66,-0xd(%rbp)
    12ed:	c6 45 f4 00          	movb   $0x0,-0xc(%rbp)*/
	
	//char c[7] = {'a', 'b', 'c', 'd', 'e', 'f'};	// movl   $0x64636261,-0xf(%rbp)
													// $0x6665,-0xb(%rbp)	
	//char *c = "abcdef";		// 存数据段了。

	//char a1 = 'a';	movb   $0x61,-0x12(%rbp)
	//char b2 = 'b';
	//char c2 = 'c';

	char ac[10];
	ac[0] = 'a';
	ac[1] = 'b';
	ac[2] = 'c';
	ac[3] = 'd';
	ac[4] = 'e';
	ac[5] = 'f';
	ac[6] = '\0';

    /*12f1:	90                   	nop
    12f2:	48 8b 55 f8          	mov    -0x8(%rbp),%rdx
    12f6:	64 48 33 14 25 28 00 	xor    %fs:0x28,%rdx
    12fd:	00 00 
    12ff:	74 05                	je     1306 <array3+0x5a>
    1301:	e8 5a fd ff ff       	callq  1060 <__stack_chk_fail@plt>
    1306:	c9                   	leaveq 
    1307:	c3                   	retq   */
		
	return 0; 
}
int f_1308()
{
    /*1308:	f3 0f 1e fa          	endbr64 
    130c:	55                   	push   %rbp
    130d:	48 89 e5             	mov    %rsp,%rbp
    1310:	48 83 ec 40          	sub    $0x40,%rsp
    1314:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    131b:	00 00 
    131d:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    1321:	31 c0                	xor    %eax,%eax
    1323:	c7 45 c0 01 00 00 00 	movl   $0x1,-0x40(%rbp)
    132a:	c7 45 c4 02 00 00 00 	movl   $0x2,-0x3c(%rbp)
    1331:	c7 45 c8 03 00 00 00 	movl   $0x3,-0x38(%rbp)
    1338:	c7 45 cc 04 00 00 00 	movl   $0x4,-0x34(%rbp)
    133f:	c7 45 d0 05 00 00 00 	movl   $0x5,-0x30(%rbp)
    1346:	c7 45 d4 06 00 00 00 	movl   $0x6,-0x2c(%rbp)
    134d:	c7 45 d8 07 00 00 00 	movl   $0x7,-0x28(%rbp)
    1354:	c7 45 dc 08 00 00 00 	movl   $0x8,-0x24(%rbp)
    135b:	90                   	nop
    135c:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    1360:	64 48 33 04 25 28 00 	xor    %fs:0x28,%rax
    1367:	00 00 
    1369:	74 05                	je     1370 <array4+0x68>
    136b:	e8 f0 fc ff ff       	callq  1060 <__stack_chk_fail@plt>
    1370:	c9                   	leaveq 
    1371:	c3                   	retq  */ 

	int a[8] = {1, 2, 3, 4, 5, 6, 7, 8};

	return 0; 
}

int f_16d2()
{
    /*16d2:	f3 0f 1e fa          	endbr64 
    16d6:	55                   	push   %rbp
    16d7:	48 89 e5             	mov    %rsp,%rbp
    16da:	48 83 ec 40          	sub    $0x40,%rsp
    16de:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    16e5:	00 00 
    16e7:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    16eb:	31 c0                	xor    %eax,%eax */
    /*16ed:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%rbp)
    16f4:	c7 45 e4 02 00 00 00 	movl   $0x2,-0x1c(%rbp)
    16fb:	c7 45 e8 03 00 00 00 	movl   $0x3,-0x18(%rbp)
    1702:	c7 45 ec 04 00 00 00 	movl   $0x4,-0x14(%rbp)
    1709:	c7 45 f0 09 00 00 00 	movl   $0x9,-0x10(%rbp) */
		int a[5] = {1, 2, 3, 4, 9};

    /*1710:	48 8d 45 e0          	lea    -0x20(%rbp),%rax	// rax = a
    1714:	48 83 c0 14          	add    $0x14,%rax		// rax = a + sizeof(a)
    1718:	48 89 45 d0          	mov    %rax,-0x30(%rbp) */
		int *p1 = (int*)(&a + 1);

    /*171c:	48 8d 45 e0          	lea    -0x20(%rbp),%rax	// rax = a
    1720:	83 c0 01             	add    $0x1,%eax		// 
    1723:	48 98                	cltq   
    1725:	48 89 45 d8          	mov    %rax,-0x28(%rbp) */
		int *p2 = (char *)(a) + 1;

    /*1729:	48 8d 45 e0          	lea    -0x20(%rbp),%rax
    172d:	48 83 c0 14          	add    $0x14,%rax
    1731:	89 45 cc             	mov    %eax,-0x34(%rbp) */
		int *p3 = a + 5;

    /*1734:	48 8d 45 e0          	lea    -0x20(%rbp),%rax	// rax = a
    1738:	48 89 c6             	mov    %rax,%rsi		// rsi = a
    173b:	48 8d 3d e9 08 00 00 	lea    0x8e9(%rip),%rdi        # 202b <_IO_stdin_used+0x2b>
    1742:	b8 00 00 00 00       	mov    $0x0,%eax
    1747:	e8 24 f9 ff ff       	callq  1070 <printf@plt>*/
		printf("a address is %p\n", a);

    /*174c:	48 8d 45 e0          	lea    -0x20(%rbp),%rax
    1750:	48 89 c6             	mov    %rax,%rsi
    1753:	48 8d 3d db 08 00 00 	lea    0x8db(%rip),%rdi        # 2035 <_IO_stdin_used+0x35>
    175a:	b8 00 00 00 00       	mov    $0x0,%eax
    175f:	e8 0c f9 ff ff       	callq  1070 <printf@plt> */
		printf("a address is %x\n", &a);

    /*1764:	48 8d 45 e0          	lea    -0x20(%rbp),%rax
    1768:	48 83 c0 04          	add    $0x4,%rax
    176c:	48 89 c6             	mov    %rax,%rsi
    176f:	48 8d 3d b5 08 00 00 	lea    0x8b5(%rip),%rdi        # 202b <_IO_stdin_used+0x2b>
    1776:	b8 00 00 00 00       	mov    $0x0,%eax
    177b:	e8 f0 f8 ff ff       	callq  1070 <printf@plt> */
		printf("a is %x\n", a + 1);

    /*1780:	48 8d 45 e0          	lea    -0x20(%rbp),%rax
    1784:	48 83 c0 14          	add    $0x14,%rax
    1788:	48 89 c6             	mov    %rax,%rsi
    178b:	48 8d 3d a3 08 00 00 	lea    0x8a3(%rip),%rdi        # 2035 <_IO_stdin_used+0x35>
    1792:	b8 00 00 00 00       	mov    $0x0,%eax
    1797:	e8 d4 f8 ff ff       	callq  1070 <printf@plt> */
		printf("a is %p\n\n", a+5);

    /*179c:	8b 45 cc             	mov    -0x34(%rbp),%eax
    179f:	89 c6                	mov    %eax,%esi
    17a1:	48 8d 3d 97 08 00 00 	lea    0x897(%rip),%rdi        # 203f <_IO_stdin_used+0x3f>
    17a8:	b8 00 00 00 00       	mov    $0x0,%eax
    17ad:	e8 be f8 ff ff       	callq  1070 <printf@plt> */
		printf("p3 is %x\n", &(*p3));

    /*17b2:	8b 45 cc             	mov    -0x34(%rbp),%eax
    17b5:	89 c6                	mov    %eax,%esi
    17b7:	48 8d 3d 8e 08 00 00 	lea    0x88e(%rip),%rdi        # 204c <_IO_stdin_used+0x4c>
    17be:	b8 00 00 00 00       	mov    $0x0,%eax
    17c3:	e8 a8 f8 ff ff       	callq  1070 <printf@plt> */
		printf("p3 is %p\n", &(*p3));

    /*17c8:	48 8d 45 cc          	lea    -0x34(%rbp),%rax
    17cc:	48 89 c6             	mov    %rax,%rsi
    17cf:	48 8d 3d 81 08 00 00 	lea    0x881(%rip),%rdi        # 2057 <_IO_stdin_used+0x57>
    17d6:	b8 00 00 00 00       	mov    $0x0,%eax
    17db:	e8 90 f8 ff ff       	callq  1070 <printf@plt> */
		printf("p3 is %p\n\n", &p3);

    /*17e0:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    17e4:	8b 00                	mov    (%rax),%eax
    17e6:	89 c6                	mov    %eax,%esi
    17e8:	48 8d 3d 74 08 00 00 	lea    0x874(%rip),%rdi        # 2063 <_IO_stdin_used+0x63>
    17ef:	b8 00 00 00 00       	mov    $0x0,%eax
    17f4:	e8 77 f8 ff ff       	callq  1070 <printf@plt> */
		printf("p1 is %x\n", *p1);

    /*17f9:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    17fd:	8b 00                	mov    (%rax),%eax
    17ff:	89 c6                	mov    %eax,%esi
    1801:	48 8d 3d 6a 08 00 00 	lea    0x86a(%rip),%rdi        # 2072 <_IO_stdin_used+0x72>
    1808:	b8 00 00 00 00       	mov    $0x0,%eax
    180d:	e8 5e f8 ff ff       	callq  1070 <printf@plt> */
		printf("p1 is %x\n", *p1);

    /*1812:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    1816:	48 89 c6             	mov    %rax,%rsi
    1819:	48 8d 3d 5d 08 00 00 	lea    0x85d(%rip),%rdi        # 207d <_IO_stdin_used+0x7d>
    1820:	b8 00 00 00 00       	mov    $0x0,%eax
    1825:	e8 46 f8 ff ff       	callq  1070 <printf@plt> */
		printf("p1 is %p\n", &(*p1));

    /*182a:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    182e:	48 89 c6             	mov    %rax,%rsi
    1831:	48 8d 3d 3a 08 00 00 	lea    0x83a(%rip),%rdi        # 2072 <_IO_stdin_used+0x72>
    1838:	b8 00 00 00 00       	mov    $0x0,%eax
    183d:	e8 2e f8 ff ff       	callq  1070 <printf@plt> */
		printf("p1 is %p\n", &(*p1));

    /*1842:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
    1846:	48 89 c6             	mov    %rax,%rsi
    1849:	48 8d 3d 3a 08 00 00 	lea    0x83a(%rip),%rdi        # 208a <_IO_stdin_used+0x8a>
    1850:	b8 00 00 00 00       	mov    $0x0,%eax
    1855:	e8 16 f8 ff ff       	callq  1070 <printf@plt> */
		printf("p1 is %p\n", &p1);

    /*185a:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
    185e:	48 83 e8 04          	sub    $0x4,%rax
    1862:	8b 00                	mov    (%rax),%eax
    1864:	89 c6                	mov    %eax,%esi
    1866:	48 8d 3d 29 08 00 00 	lea    0x829(%rip),%rdi        # 2096 <_IO_stdin_used+0x96>
    186d:	b8 00 00 00 00       	mov    $0x0,%eax
    1872:	e8 f9 f7 ff ff       	callq  1070 <printf@plt> */
		printf("p1 is %d\n\n", p1[-1]);

    /*1877:	48 8b 45 d8          	mov    -0x28(%rbp),%rax
    187b:	48 89 c6             	mov    %rax,%rsi
    187e:	48 8d 3d 20 08 00 00 	lea    0x820(%rip),%rdi        # 20a5 <_IO_stdin_used+0xa5>
    1885:	b8 00 00 00 00       	mov    $0x0,%eax
    188a:	e8 e1 f7 ff ff       	callq  1070 <printf@plt> */
		printf("p2 is %p\n", &(*p2));

    /*188f:	48 8d 45 d8          	lea    -0x28(%rbp),%rax
    1893:	48 89 c6             	mov    %rax,%rsi
    1896:	48 8d 3d 13 08 00 00 	lea    0x813(%rip),%rdi        # 20b0 <_IO_stdin_used+0xb0>
    189d:	b8 00 00 00 00       	mov    $0x0,%eax
    18a2:	e8 c9 f7 ff ff       	callq  1070 <printf@plt> */
		printf("p2 is %p\n", &p2);

    /*18a7:	b8 00 00 00 00       	mov    $0x0,%eax
    18ac:	48 8b 55 f8          	mov    -0x8(%rbp),%rdx
    18b0:	64 48 33 14 25 28 00 	xor    %fs:0x28,%rdx
    18b7:	00 00 
    18b9:	74 05                	je     18c0 <array_cal+0x1ee>
    18bb:	e8 a0 f7 ff ff       	callq  1060 <__stack_chk_fail@plt>
    18c0:	c9                   	leaveq 
    18c1:	c3                   	retq   */

	return 0; 
}

int f_18c2()
{
    /*18c2:	f3 0f 1e fa          	endbr64 
    18c6:	55                   	push   %rbp
    18c7:	48 89 e5             	mov    %rsp,%rbp
    18ca:	48 83 ec 40          	sub    $0x40,%rsp
    18ce:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    18d5:	00 00 
    18d7:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    18db:	31 c0                	xor    %eax,%eax */
    /*18dd:	48 c7 45 d0 00 00 00 	movq   $0x0,-0x30(%rbp) // (0x30,0x2c) = 8byte
    18e4:	00 
    18e5:	48 c7 45 d8 00 00 00 	movq   $0x0,-0x28(%rbp) // (0x28,0x24) = 8byte
    18ec:	00 
    18ed:	48 c7 45 e0 00 00 00 	movq   $0x0,-0x20(%rbp) // (0x20,0x1c) = 8byte
    18f4:	00 
    18f5:	48 c7 45 e8 00 00 00 	movq   $0x0,-0x18(%rbp) // (0x18,0x14) = 8byte
    18fc:	00 
    18fd:	48 c7 45 f0 00 00 00 	movq   $0x0,-0x10(%rbp) // (0x10,0x0c) = 8byte --> 8*5=40/4=10
    1904:	00 */
		int a[10] = {0};

    /*1905:	c7 45 d0 0b 00 00 00 	movl   $0xb,-0x30(%rbp)
    190c:	c7 45 d4 0f 00 00 00 	movl   $0xf,-0x2c(%rbp)
    1913:	c7 45 d8 14 00 00 00 	movl   $0x14,-0x28(%rbp)
    191a:	c7 45 dc 19 00 00 00 	movl   $0x19,-0x24(%rbp)
    1921:	c7 45 e0 1e 00 00 00 	movl   $0x1e,-0x20(%rbp)*/
		a[0] = 0xb;
		a[1] = 0xf;
		a[2] = 0x14;
		a[3] = 0x19;
		a[4] = 0x1e;

    /*1928:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
    192c:	48 83 c0 08          	add    $0x8,%rax
    1930:	48 89 45 c8          	mov    %rax,-0x38(%rbp) */
		int *p1 = a + 2;

    /*1934:	48 8b 45 c8          	mov    -0x38(%rbp),%rax
    1938:	8b 00                	mov    (%rax),%eax
    193a:	89 c6                	mov    %eax,%esi
    193c:	48 8d 3d 79 07 00 00 	lea    0x779(%rip),%rdi        # 20bc <_IO_stdin_used+0xbc>
    1943:	b8 00 00 00 00       	mov    $0x0,%eax
    1948:	e8 23 f7 ff ff       	callq  1070 <printf@plt> */
		printf(" %d\n", *p1);

    /*194d:	48 8b 45 c8          	mov    -0x38(%rbp),%rax
    1951:	48 83 e8 04          	sub    $0x4,%rax
    1955:	8b 00                	mov    (%rax),%eax
    1957:	89 c6                	mov    %eax,%esi
    1959:	48 8d 3d 5c 07 00 00 	lea    0x75c(%rip),%rdi        # 20bc <_IO_stdin_used+0xbc>
    1960:	b8 00 00 00 00       	mov    $0x0,%eax
    1965:	e8 06 f7 ff ff       	callq  1070 <printf@plt> */
		printf(" %d\n", *(p1 - 1));		
		
    /*196a:	48 8b 45 c8          	mov    -0x38(%rbp),%rax
    196e:	48 83 e8 08          	sub    $0x8,%rax
    1972:	8b 00                	mov    (%rax),%eax
    1974:	89 c6                	mov    %eax,%esi
    1976:	48 8d 3d 3f 07 00 00 	lea    0x73f(%rip),%rdi        # 20bc <_IO_stdin_used+0xbc>
    197d:	b8 00 00 00 00       	mov    $0x0,%eax
    1982:	e8 e9 f6 ff ff       	callq  1070 <printf@plt> */
		printf(" %d\n", p1[-2]);

    /*1987:	8b 45 f4             	mov    -0xc(%rbp),%eax
    198a:	89 c6                	mov    %eax,%esi
    198c:	48 8d 3d 29 07 00 00 	lea    0x729(%rip),%rdi        # 20bc <_IO_stdin_used+0xbc>
    1993:	b8 00 00 00 00       	mov    $0x0,%eax
    1998:	e8 d3 f6 ff ff       	callq  1070 <printf@plt> */
		printf(" %d\n", a[9]);

    /*199d:	b8 00 00 00 00       	mov    $0x0,%eax
    19a2:	48 8b 55 f8          	mov    -0x8(%rbp),%rdx
    19a6:	64 48 33 14 25 28 00 	xor    %fs:0x28,%rdx
    19ad:	00 00 
    19af:	74 05                	je     19b6 <ccc+0xf4>
    19b1:	e8 aa f6 ff ff       	callq  1060 <__stack_chk_fail@plt>
    19b6:	c9                   	leaveq 
    19b7:	c3                   	retq  */ 
	
	return 0; 
}

int main()
{
	f_1372();
	f_154c();
	f_1169();
	f_127a();
	f_12ac();
	f_1308();
	f_16d2();
	f_18c2();

	return 0;
}
